package com.cheems.cheemsspringaialibaba.Tools;

import org.springframework.ai.chat.model.ToolContext;
import org.springframework.ai.tool.annotation.Tool;

import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 获取当前时间的工具
 */
public class GetCurrentTimeTool {

    @Tool(description = """
            获取当前时间，支持多种格式输出。
            返回包含当前日期和时间的详细信息，包括年月日、时分秒、星期等。
            可以用于时间相关的查询和判断。
            """)
    public String getCurrentTime() {
        try {
            // 获取当前时间
            LocalDateTime now = LocalDateTime.now();
            ZonedDateTime zonedNow = ZonedDateTime.now();
            
            // 定义多种格式
            DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
            DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("MM-dd HH:mm");
            DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("E", java.util.Locale.CHINESE);
            
            StringBuilder result = new StringBuilder();
            result.append("当前时间信息：\n");
            result.append("标准格式：").append(now.format(formatter1)).append("\n");
            result.append("中文格式：").append(now.format(formatter2)).append("\n");
            result.append("简短格式：").append(now.format(formatter3)).append("\n");
            result.append("星期：").append(now.format(formatter4)).append("\n");
            result.append("时区：").append(zonedNow.getZone().getId()).append("\n");
            result.append("Unix时间戳：").append(System.currentTimeMillis() / 1000).append("\n");
            
            // 添加一些实用的时间判断
            int hour = now.getHour();
            String timeOfDay;
            if (hour >= 5 && hour < 12) {
                timeOfDay = "上午";
            } else if (hour >= 12 && hour < 18) {
                timeOfDay = "下午";
            } else if (hour >= 18 && hour < 22) {
                timeOfDay = "晚上";
            } else {
                timeOfDay = "深夜";
            }
            result.append("时段：").append(timeOfDay);
            
            return result.toString();
            
        } catch (Exception e) {
            return "获取当前时间失败: " + e.getMessage();
        }
    }
} 